iT邦幫忙

2023 iThome 鐵人賽

DAY 19
0
Odoo

Odoo 16 入門介紹系列 第 19

@router 介紹

  • 分享至 

  • xImage
  •  

@router:

from odoo import http
from odoo.http import request

class library_contorller(http.Controller):
  @http.route('/my_library/books',method=['GET'], type='http', auth='none')
  def books(self):
    books = request.env['library.book'].sudo().search([])
    html_result = '<html><body><ul>'
    for book in books:
      html_result += "<li> %s </li>" % book.name
    html_result += '</ul></body></html>'
    return html_result

@route('/my_library/books', type='http', auth='none')當中'/my_library/books'就是我們的網址後綴,還有我們使用了type='http',透過request.env[]library.book
所有recordset給抓出來並透過for來將他們列出來 ; auth='none'代表任何人都可以訪問.../my_library/books這個網址。

  • 在 Odoo 框架中, @route 裝飾器用來建立 Web API 的存取點,讓你能夠定義特定功能的API端口。
  • 使用以下這些參數可以幫助你建立適合你業務需求的API端點 :
    • Endpoint Name : 裝飾器的第一個參數是端點的名稱。舉個例子,在你的程式碼中,透過@route裝飾器建立了一個名為student的端點,因此這個API的網址就是 http://domain/student
    • Methods : 這個參數允許你指定可以存取該API端口的HTTP請求方法。在Odoo中,你可以用一個包含HTTP請求方法的清單來設定。舉例來說,在你的範例中,你只允許使用GET方法來存取這個端點。這表示只有透過http://domain/student 發起GET請求的用戶端才能存取這個API端點。
    • Type : 這個參數定義了該API端點所期望的請求資料類型(Content-Type)。你提到了兩種類型:json和http。json類型表示該端點希望接收的請求資料是JSON格式。而http類型可能表示它接受其他類型的請求,比如普通的HTTP表單資料。

上一篇
Controller 的介紹及使用
下一篇
api 的應用
系列文
Odoo 16 入門介紹30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言